module compress32(/*AUTOARG*/
   // Outputs
   o_cout, o_sum,
   // Inputs
   i_a, i_b, i_c
   );
   
   parameter WIDTH = 8;

   output logic [WIDTH-1:0] o_cout, o_sum;
   input logic [WIDTH-1:0] 	i_a, i_b, i_c;

   logic [WIDTH-1:0] 		sum;
   logic [WIDTH-1:0] 			cout;
   
   generate
      genvar 				i;
      for(i=0;i<WIDTH;i++)
	begin : cmpr32
	   
	   FA unit ( .Cout(cout[i]),
		     .Sum(sum[i]),
		     .A(i_a[i]),
		     .B(i_b[i]),
		     .Cin(i_c[i]) );
	end
   endgenerate
   
   assign o_sum = sum;
   assign o_cout = {cout[WIDTH-2:0], 1'b0};
   
endmodule // compress32


